Position feedback control method and power tool

ABSTRACT

Various embodiments of power tool and method of operating same are described. The power tool may include a first position sensor, a second position sensor, a third position sensor, and a controller. The first, second, and third position sensors may each generate a signal indicative of a distance between the respective position sensor and a workpiece. The controller may determine one or more angles of the power tool with respect to the workpiece based on the first, second, and third signal and present an indication as to whether the one or more angles are within a predetermined range. The controller may further obtain a depth measurement based on the first signal, the second signal, and the third signal and generate, based on the obtained depth measurement, one or more control signals that control operation of the power tool.

FIELD OF THE INVENTION

Various embodiments relate to a power tool, and more particularly, tocontrolling operation of a power tool based on a detected position.

BACKGROUND OF THE INVENTION

Driving screws with a conventional power drill or driver requirescareful, manual throttling of the tool to obtain a correct depth. A userof such a power drill or driver must typically release the trigger atprecisely the correct moment. Power driving a screw is generally a quickprocess, which makes precise throttling a challenge for most users.Imprecise throttling generally results in overdriving or underdrivingthe screw. Overdriving a screw results in the screw being driven toodeep and may cause the screw and/or the workpiece into which the screwis driven to fail. Underdriving results in the screw not being drivendeep enough, thus requiring restarting the driving process in order todrive the screw flush. However, restarting the driving process, afterstopping short of flush, commonly results in slippage of the driver bit,stripping or otherwise damaging the screw, or damaging the workpieceinto which the screw is being driven.

Limitations and disadvantages of conventional and traditional approachesshould become apparent to one of skill in the art, through comparison ofsuch systems with aspects of the present invention as set forth in theremainder of the present application.

BRIEF SUMMARY OF THE INVENTION

A position feedback control method and power tool using the same aresubstantially shown in and/or described in connection with at least oneof the figures, and are set forth more completely in the claims.

Advantages, aspects and novel features of the present invention, as wellas details of an illustrated embodiment thereof, will be more fullyunderstood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

For clarity of illustration, exemplary elements illustrated in thefigures may not necessarily be drawn to scale. In this regard, forexample, the dimensions of some of the elements may be exaggeratedrelative to other elements to provide clarity. Furthermore, whereconsidered appropriate, reference labels have been repeated among thefigures to indicate corresponding or analogous elements.

FIG. 1 provides a perspective view of a power tool in accordance withone embodiment.

FIG. 2 provides another perspective view of the power tool shown in FIG.1.

FIG. 3 provides a side view of the power tool shown in FIG. 1 includinga magnified view of its trigger.

FIG. 4 provides a top view of the power tool shown in FIG. 1.

FIG. 5 provides a front view of the power tool shown in FIG. 1.

FIG. 6 provides a back view of the power tool shown in FIG. 1.

FIG. 7 provides a block diagram back of the power tool shown in FIG. 1.

FIG. 8 depicts one orientation of positions sensors for the power toolshown in FIG. 1.

FIG. 9 depicts a first operating angle of the power tool shown in FIG.1.

FIG. 10 depicts a second operating angle of the power tool shown in FIG.1.

FIG. 11 depicts a flowchart for an example zero mode of operation forthe power tool shown in FIG. 1.

FIGS. 12A-12C depict a flowchart for an example blind hole or auto flushmode of operation for the power tool shown in FIG. 1.

FIG. 13 depicts one example of an angle indicator for the power toolshown in FIG. 1.

FIG. 14 depicts another example of an angle indicator for the power toolshown in FIG. 1.

FIG. 15 depicts yet another example of an angle indicator for the powertool shown in FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

Aspects of the present invention are generally related to power toolsand position feedback controls for such power tools. The followingdescription focuses upon an embodiment of a power drill/driver which maybe used to drill a hole into a workpiece when a drill bit is secured bya chuck of the power drill/driver or which may be used to drive a screwinto a workpiece when a screw bit is secured by the chuck of the powerdrill/driver. However, various aspects of the position feedback controlsmay be applicable to a wide range of power tools such as, for example,drills, drivers, saws, cutters, and hammers.

Referring now to FIGS. 1-6, several external views of a cordless powertool 10 are shown. While a cordless power tool is depicted, variousaspects of the below-described power tool 10 may be implemented in acorded power tool as well. As shown, the power tool 10 may comprise ahandle 20 coupled between an upper portion 30 and a base portion 40. Thebase portion 40 may be configured to receive a battery pack, which maybe used to power the tool 10. The base portion 40 may further include alower support 42 capable of maintaining the power tool 10 in an uprightposition when the power tool 10 is placed upon a horizontal surface.

The handle 20 may provide a surface via which a user may grip and holdthe power tool 10. As shown, the handle 20 may include a trigger 22toward an upper end of the handle 20. The trigger 22 may be positionedsuch that the user may actuate the trigger 22 by squeezing the trigger22 with a finger (e.g., index finger) of the hand used to hold the powertool 10.

In some embodiments, the trigger 22 may have a first range of travel RT₁and a second range of travel RT₂ which enable a user to select betweentwo modes of operation. A first operating mode may be associated with afirst range of travel RT₁ between a rest position 23 and a first stopposition 24. A second operating mode may be associated with a secondrange of travel RT₂ between the first stop position 24 and a second stopposition 25. To demarcate the two operating modes, the trigger 22 mayinclude a first spring 26 and a second spring 27 which cooperate toapply restive forces to the trigger 22. In particular, the first spring26 may apply a first force to the trigger 22 as it travels along thefirst range of travel between the rest position 23 and the first stopposition 24. The first spring 26 and second spring 27 may cooperate toapply a second force that is greater than the first force to the trigger22 as it travels along the second range of travel from the first stopposition 24 to the second stop position 25. In this manner, the user mayneed to exert additional force on the trigger 22 in order to cause thetrigger 22 to travel past the first stop position 24.

As shown, the upper portion 30 may include a mode selector 32 positionedalong a top surface 35. The upper portion 30 may further includeposition sensors 34 ₁, 34 ₂, 34 ₃ positioned around a chuck 36 toward afront 31 of the power tool 10. The upper portion 30 may further includean angle indicator 38 positioned toward a back 33 of the power tool 10.

In general, the mode selector 32 enables a user to select from amongseveral different operating modes. To this end, the mode selector 32 mayinclude a linear, slide selector that enables the user to linearly,slide the selector among several different positions. Each of thedifferent positions may correspond to a different operating mode of thepower tool 10. For example, the mode selector 32, in one embodiment, mayprovide positions that correspond to various operating modes associatedwith the position sensors 34 ₁, 34 ₂, 34 ₃. In one embodiment, the modeselector 32 enables selection among an off mode, a blind hole mode, anauto flush mode, a custom flush mode, and a zero mode associated withthe position sensors 34 ₁, 34 ₂, 34 ₃.

The off mode generally corresponds to a mode in which the positionsensors 34 ₁, 34 ₂, 34 ₃ are turned off, disabled, or otherwise ignored.As such, the power tool 10 operates in a manner akin to a similar powertool without such position sensors 34 ₁, 34 ₂, 34 ₃. The blind hole modepermits a user of the power tool 10 to drill a blind hole to a specifiedand repeatable depth. The auto flush mode permits a user of the powertool 10 to insert a common style screw, with a common/included lengthbit, flush into a workpiece. The custom flush mode permits a user of thepower tool 10 to repeatably drive a screw flush into a workpiece after acustom zero point has been set. The zero mode permits a user to set thecustom zero point for the blind hole mode or the custom flush mode.While some embodiments of the power tool 10 may support each of theabove-noted modes, other embodiments may support a subset of thesemodes, may support additional modes, or may support a subset of thesemodes as well as additional modes.

As explained above, the mode selector 32 may include a linear, slideselector along a top surface 35 of the upper portion 30. Otherembodiments may provide a different location for the mode selector 32such as, for example, at a different location of the upper portion 30 orin a different portion of the power tool 10 such as the handle 20 orbase portion 40. Furthermore, while the mode selector 32 is shown as alinear slide in FIGS. 1-6, other embodiments may use a different type ofselector. For example, the mode selector 32 may include a rotary dial, arotary switch, toggle switch(es), push buttons, radio buttons, etc. thatmay be actuated in order to select a desired operating mode.

A high-level, block diagram of the power tool 10 is shown in FIG. 7. Asshown, the power tool 10 generally includes a power system 70, acontroller 80, and a motor 90. The power system 70 may includeterminals, power regulators, power conditioners, and/or other circuitrywhich are configured to distribute electric power to the controller 80,the motor 90, position sensors 34 ₁, 34 ₂, 34 ₃, angle indicator 38, andpossibly other components of the power tool 10. In some embodiments, thepower system 70 may be configured to receive batteries or battery pack72 and deliver power supplied by the received batteries or battery packto the respective components of the power tool 10. In some embodiments,the power system 70 may include a power cord 74 used to detachablycouple the power system 70 to an electrical power outlet so that thepower system 70 may deliver power supplied by the electrical poweroutlet to respective components of the power tool 10.

The motor 90 may comprise a DC motor such as a brushless or brushed DCmotor. Moreover, the motor 90 may be coupled to the chuck 36 via a gearbox 92. In one embodiment, the gear box 92 includes a hammer 94 that isconfigured to transfer torque from the motor 90 to the chuck 36 as aseries of impacts. In other embodiments, the gear box 92 does notinclude a hammer 94. In such embodiments, the gear box 92 continuallytransfers torque from the motor 90 to the chuck 36, instead oftransferring as a series of impacts. Regardless of the manner ofcoupling the motor 90 to the chuck 36, the motor 90 generally impartstorque upon the chuck 36 which causes the chuck 36 to rotate a tool 37(e.g., drill bit, screw driver bit, etc.) held by the chuck 36.

The controller 80 may control logic and circuitry that is generallyconfigured to control operation of the power tool 10. In particular, thecontroller 80 may receive signals from the trigger 22, mode selector 32,position sensors 34 ₁, 34 ₂, 34 ₃, power system 70, and motor 90. Basedon such signals, the controller 80 may control operation of the powertool 10 per an operation mode selected by the mode selector 32. Inparticular, the controller 80 may control operation of the motor 90 viaone or more control signals to the motor 90. Furthermore, the controller80 may control a brake 96 configured to stop the motor 90 via one ormore control signals. Besides controlling the motor 90 and the brake 96,the controller 80 may further determine, based on signals from theposition sensors 34, operating angles of the power tool 10 along twoaxes with respect to a workpiece.

The controller 80 may include a processor 82, memory 84 includingfirmware 86, and I/O ports 88. In response to executing instructions ofthe stored firmware 86, the processor 82 may process signals receivedvia I/O ports 88, determine appropriate control signals based on thereceived signals, and output signals via I/O ports 88 that controloperation of the power tool 10. As explained in greater detail below,the processor 82 may determine an operating angle, a drive depth, orboth based on signals from position sensors 34 ₁, 34 ₂, 34 ₃ and mayadjust operation of the power tool 10 based on such operating angle,drive depth, or both.

As shown in FIGS. 5 and 8, the power tool 10 may include three positionsensors 34 ₁, 34 ₂, 34 ₃ placed in a triangular configuration around thechuck 36. However, power tool 10 in other embodiments may include adifferent number of position sensors. Each of the position sensors 34 ₁,34 ₂, 34 ₃ may include one or more radiation sources and one or moreradiation receivers which cooperate to detect a distance between therespective sensor and a workpiece. In general, the one or more radiationsources of each position sensor 34 ₁, 34 ₂, 34 ₃ may project a patternonto a surface of the workpiece. The one or more radiation receivers ofeach position sensor 34 ₁, 34 ₂, 34 ₃ may receive the reflected patternand generate a signal indicative of the distance between the sensor 34₁, 34 ₂, 34 ₃ and the workpiece. The position sensors 34 ₁, 34 ₂, 34 ₃may use different types of radiation sources and receivers. For example,the position sensors 34 ₁, 34 ₂, 34 ₃ may operate based on generatingand detecting optical, electromagnetic, or acoustic radiation. In oneembodiment, the position sensors 34 ₁, 34 ₂, 34 ₃ may be implementedwith an STMicroelectronics proximity and ambient light sensing (ALS)module having part number VL6180X. The STMicroelectronics ALS modulemeasures the time light takes to travel to an object and reflect back tothe ALS module. The ALS module may then obtain a distance measurementbased on the measured time. In another embodiment, the position sensors34 ₁, 34 ₂, 34 ₃ may be implemented in a manner similar to the opticaldepth measuring device described in U.S. Pat. No. 4,968,146. Suchoptical depth measuring devices obtain a distance measurement based onthe amount of light reflected back to the device.

In some embodiments, each position sensor 34 ₁, 34 ₂, 34 ₃ may include asingle radiation source that projects a visible pattern on theworkpiece. Such a visible pattern permits one or more radiationreceivers of the respective sensor 34 ₁, 34 ₂, 34 ₃ to receive thereflected pattern and measure a distance to the workpiece based on thereceived reflected pattern. Moreover, the visible pattern may permit auser of the power tool 10 to confirm that each position sensor 34 ₁, 34₂, 34 ₃ is in fact directed at the workpiece of interest. When the powertool 10 is used toward an end or edge of a workpiece, one or more of theposition sensors 34 ₁, 34 ₂, 34 ₃ may not be aligned with the workpieceand may be directed off the end or edge. The visible pattern may enablethe user to realign or re-position the power tool 10 such that each ofthe position sensors 34 ₁, 34 ₂, 34 ₃ projects its pattern on theworkpiece of interest. Furthermore, the controller 80 may cause theposition sensors 34 ₁, 34 ₂, 34 ₃ to alter the displayed pattern whenthe controller 80 determines that the respective position sensor 34 ₁,34 ₂, 34 ₃ is not appropriately directed at the workpiece. For example,the controller 80 may cause the pattern to blink when not positionedappropriately and to remain steady when positioned appropriately.

As shown in FIGS. 8-10, the first position sensor 34 ₁ and secondposition sensor 34 ₂ may be positioned such that the first positionsensor 34 ₁ is positioned toward the left of the chuck 36 and the secondposition sensor 34 ₂ is positioned toward the right of the chuck 36.Moreover, the first and second position sensor 34 ₁, 34 ₂ may bepositioned such that a center of the first position sensor 34 ₁ is adistance D₁ from a center of the second position sensor 34 ₂. The thirdposition sensor 34 ₃ may be positioned directly below the chuck 36 suchthat a line passing through a center of the third sensor 34 ₃ and acenter of the chuck 36 evenly bisects the distance D₁ between the firstand second position sensors 34 ₁, 34 ₂ at a point P. Moreover, the thirdposition sensor 34 ₃ may be positioned such that a center of the thirdposition sensor 34 ₃ is a distance E from a line joining the first andsecond position sensor 34 ₁, 34 ₂, a distance D₂ from the center of thesecond position sensor 34 ₂, and a distance D₃ from the center of thefirst position sensor 34 ₁. Finally, the position sensors 34 ₁, 34 ₂, 34₃ may be positioned such that, when the power tool 10 is perpendicularto the workpiece, each of the position sensors 34 ₁, 34 ₂, 34 ₃ is thesame distance from the workpiece.

With the position sensors 34 ₁, 34 ₂, 34 ₃ positioned in such a manner,the controller 80 may determine an angle α₁ that corresponds to aleft-to-right tilt of the power tool 10 with respect to the workpieceand an angle β that corresponds to a back-to-front tilt of the powertool 100 with respect to the workpiece. In particular, the controller 10may determine the angle α₁ per below Equation 1 using distance S₁, S₂respectively obtained from sensors 34 ₁, 34 ₂ and the known distance D₁between sensors 34 ₁, 34 ₂. The controller 80 may similarly determine anangle α₂ per below Equation 2 using distance S₂, S₃ respectivelyobtained from sensors 34 ₂, 34 ₃ and the known distance D₂ betweensensors 34 ₂, 34 ₃. Likewise, the controller 80 may determine an angleα₃ per below Equation 3 using distance S₁, S₃ respectively obtained fromsensors 34 ₁, 34 ₃ and the known distance D₃ between sensors 34 ₁, 34 ₃.Finally, the controller 80 may determine an angle β per below Equation 4using distance S₁, S₂, S₃ respectively obtained from sensors 34 ₁, 34 ₂,34 ₃ and the known distance E from the third position sensor 34 ₃ to theline connecting the first position sensor 34 ₁ and the second positionsensor 34 ₃.

$\begin{matrix}{\alpha_{1} = {{arc}\;{\cos\left( \frac{{S_{1} - S_{2}}}{\sqrt{D_{1}^{2} + \left( {S_{1} - S_{2}} \right)^{2}}} \right)}}} & {{Equation}\mspace{14mu} 1}\end{matrix}$

$\begin{matrix}{\alpha_{2} = {{arc}\;{\cos\left( \frac{{S_{2} - S_{3}}}{\sqrt{D_{2}^{2} + \left( {S_{2} - S_{3}} \right)^{2}}} \right)}}} & {{Equation}\mspace{14mu} 2}\end{matrix}$

$\begin{matrix}{\alpha_{3} = {{arc}\;{\cos\left( \frac{{S_{1} - S_{3}}}{\sqrt{D_{3}^{2} + \left( {S_{1} - S_{3}} \right)^{2}}} \right)}}} & {{Equation}\mspace{14mu} 3}\end{matrix}$

$\begin{matrix}{\beta = {{arc}\;{\cos\left( \frac{{\frac{S_{1} + S_{2}}{2} - S_{3}}}{\sqrt{E^{2} + \left( {\frac{S_{1} + S_{2}}{2} - S_{3}} \right)^{2}}} \right)}}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

The above Equation 4 is based on the third position sensor 34 ₃ equallybisecting the distance between the first and second sensor 34 ₁, 34 ₂ inthe manner describe above. However, Equation 4 may be easily modified toaddress an embodiment in which the third position sensor 34 ₃ is notequidistant between the first and second position sensor 34 ₁, 34 ₂. Inparticular, the term (S₁+S₂)/2, which corresponds to the averagedistance detected by the first and second position sensors 34 ₁, 34 ₂,would change to (off₂/D₁)*S₁+(off₁/D₁)*S₂ where off₁ and off₂respectively correspond to the distance between the point P at which thethird position sensor 34 ₃ bisects the distance D₁ and the respectiveposition sensor 34 ₁, 34 ₂.

Referring now to FIG. 11, a flowchart 200 for a zero mode of operationis shown. As noted above, the power tool 100 in the zero mode ofoperation may permit a user to set a custom zero value Z for later useby the blind hole mode or the custom flush mode. To this end, the userat 205 may drill a hole or drive a screw to a desired depth. In oneembodiment, the power tool 10 is configured to generate an indication aseach predetermined depth interval is reached. For instance, the powertool 10 may generate one or more signals that cause a haptic buzz, anaudible beep, a visual LED illumination, etc. to occur as eachpredetermined depth interval (e.g., ¼″) is obtained. For example, thepower tool 10 may provide a short indication when a ¼″ depth isobtained, provide a double short indication when a ½″ depth is obtained,provide a short indication when a ¾″ depth is obtained, and provide along indication when a 1″ depth is obtained. Based on such indications,the user may manually stop the power tool 10 at the desired depth inorder to cause the power tool 10 to set and store the desired zero valueZ for future reference. While the power tool 10 may use the sameindication as each interval depth is obtained, varying the indicationsin a manner similar to the above, reduces the likelihood that the userloses count of the number of indications and thus sets the zero value Zfor an undesired depth.

The controller 80 at 210 may detect that a user has obtained the desireddepth and desires to set the zero value Z. The controller 80 at 215 mayobtain a distance measurement S₁, S₂, S₃ for each of the positionsensors 34 ₁, 34 ₂, 34 ₃ based on signals received from each of theposition sensors 34 ₁, 34 ₂, 34 ₃. The controller 80 at 220 may detectand disregard blocked distance measurement S₁, S₂, S₃. In a workenvironment, it is not uncommon for dust, dirt, wood particles, etc., tocover one or more of the position sensors 34 ₁, 34 ₂, 34 ₃. Distancesless than a distance C₁, C₂, C₃ from the respective position sensor 34₁, 34 ₂, 34 ₃ to the distal end 39 of the chuck 36 (FIGS. 3 and 4) maybe indicative of the respective sensor 34 ₁, 34 ₂, 34 ₃ being blocked bysuch particles, may be indicative of a malfunction of the respectivesensor 34 ₁, 34 ₂, 34 ₃, or may be indicative that something else iscausing an incorrect reading. Accordingly, the controller 80 at 220 maydisregard or discard any distance measurement S₁, S₂, S₃ that is lessthan the distance C₁, C₂, C₃ from the respective sensor 34 ₁, 34 ₂, 34 ₃to the distal end 39 of the chuck 36.

If the controller 80 determines at 222 that all distance measurementsS₁, S₂, S₃ have been disregarded, then controller 80 at 225 may generatesignals which present the user with an error or warning message. Forexample, the controller 80 may present such an error message via theangle indicator 38, via visible patterns projected by the sensors 34 ₁,34 ₂, 34 ₃, or both.

If the controller 80 determines at 224 that only one of distancemeasurements S₁, S₂, S₃ was retained or not disregarded, then controller80 proceeds to 226 in order to select the one retained distancemeasurement S₁, S₂, S₃ as the custom zero value Z. The controller 80 at250 may store the obtained zero value Z for future reference.

Otherwise, the controller 80 at 230 may determine, for each pair ofretained distance measurements S₁, S₂, S₃, the corresponding angle α₁,α₂, α₃ per Equations 1-3. In one embodiment, if distance measurementsS₁, S₂, S₃ were not retained for one or both sensors 34 ₁, 34 ₂, 34 ₃ ofa respective pair, then the controller 80 at 230 may set thecorresponding angle α₁, α₂, α₃ to a value that indicates that the angleα₁, α₂, α₃ is unknown or that the angle α₁, α₂, α₃ lies outside apredetermined, acceptable range.

At 235, the controller 80 may determine the angle β per Equation 4. Inone embodiment, if distance measurements S₁, S₂, S₃ were not retainedfor all three sensors 34 ₁, 34 ₂, 34 ₃, then the controller 80 at 235may set the angle β to a value that indicates that the angle β isunknown or that the angle β lies outside the predetermined, acceptablerange.

At 240, the controller 80 may determine whether all of the angles α₁,α₂, α₃, β lie within of the predetermined, acceptable range. Forexample, the controller 80 may determine that an angle α₁, α₂, α₃, βlies within the predetermined, acceptable range if the respective angleis between 75° and 105° degrees, which is ±15° from perpendicular. Ifall angles α₁, α₂, α₃, β lie within the predetermined, acceptable range,then the controller 80 may proceed to 245 in order to determine andstore the custom zero value Z. In particular, the controller 80 at 245may average the distance measurements S₁, S₂, S₃ to obtain the customzero value Z. At 250, the controller 80 may store the obtained value Zin memory 84 for future reference.

If all angles α₁, α₂, α₃, β do not lie within the predetermined,acceptable range, then the controller 80 at 225 may present an error orwarning message to the user via the angle indicator 38, a patternprojected by the position sensors 34 ₁, 34 ₂, 34 ₃, or both. Forexample, the controller 80 may cause the angle indicator 38 to presentan error code, flash an LED, or generate some other visual presentationindicative of an error. Alternatively, or in addition to, the controller80 may cause the position sensors 34 ₁, 34 ₂, 34 ₃ to project a blinkingpattern, a different color pattern, or some other visual depiction thatconveys an error or warning message to the user of the power tool 10.

The controller 80 at 260 may then select the shortest retained distancemeasurement S₁, S₂, S₃ for use as the custom zero value Z. Doing soensures that the controller 80 does not use measurements S₁, S₂, S₃ thatare likely associated with position sensors 34 ₁, 34 ₂, 34 ₃ that arenot properly aligned with the workpiece (e.g., projecting theirrespective radiation off an end or edge of the workpiece). Thecontroller 80 then may proceed to 250 in order to store the obtainedzero value Z for future reference.

Referring now to FIGS. 12A-12B, a flowchart 300 for one implementationof a control logic for the custom flush mode or the auto flush mode ofthe power tool 10 is shown. During the custom flush mode, the zero valueZ is a custom value set via the process of FIG. 11 or a similar process.During the auto flush mode, the zero value is set based on a commonstyle screw and possibly a user selection that identifies a common stylefrom a set of predefined common styles of screws.

At block 305, the controller 80 may determine whether the trigger 22 isactivated. If it is not activated, the controller 80 at 310 maydetermine whether the motor 90 is stopped. If it is not stopped, thenthe controller 80 at 315 may activate the brake 96 in order to apply thebrake 96 to the motor 90 and stop the motor 90. Otherwise, thecontroller 80 does nothing and returns to 305 to determine if thetrigger 22 is activated.

If the trigger is activated, the controller at 320 may obtain a distancemeasurement S₁, S₂, S₃ from each of the position sensors 34 ₁, 34 ₂, 34₃. The controller 80 at 325 may disregard or discard any distancemeasurement S₁, S₂, S₃ that is less than a respective chuck distance C₁,C₂, C₃, which corresponds from the respective sensor 34 ₁, 34 ₂, 34 ₃ tothe end of the chuck 36 along a line that is normal to the workpiece.

At 330, the controller 80 determines whether a drill/drive process isalready in progress. In one embodiment, the controller 80 may make suchdetermination based upon whether a flag F is set. For example, if it isset, then the controller 80 may determine that the power tool 10 is inthe middle of driving a screw flush or drilling a hole and may continueto 345. Otherwise, the controller 80 may determine that the power tool10 is initiating a drill/drive process. In which case, the controller 80at 335 may initialize control values for the drill/set process. Forexample, the controller 80 may set the flag F to indicate that theprocess of driving a screw flush or drilling a blind hole has begun. Thecontroller 80 may further store initial values (e.g., 0) for an initialdepth measurement M and an initial revolutions per minute (RPM) value Rof the power tool 10. The controller 80 at 340 may store the retaineddistance measurements S₁, S₂, S₃ in the memory 84 and proceed to 360 inorder to determine the number of retained measurements.

At 345, the controller 80 may compare the current distance measurementsS₁, S₂, S₃ with previous distance measurements S₁, S₂, S₃ stored inmemory 84 and retain the current distance measurements S₁, S₂, S₃ thatare not more than a threshold percentage (e.g., 10%) T different thanthe corresponding previous reading. By disregarding such distancemeasurements S₁, S₂, S₃, the controller 80 may avoiding basing depthmeasurements upon distance measurements S₁, S₂, S₃ that do not accuratereflect the depth of the power tool 10. For example, a position sensorS₁, S₂, S₃ during the drilling/driving process may become misaligned andproject its radiation off an end or edge of the workpiece or may becomeblocked by dust and/or debris generated during the drilling/drivingprocess.

The controller 80 at 350 may update stored distance measurements S₁, S₂,S₃ based on the retained distance measurements S₁, S₂, S₃. Thecontroller 80 at 360 may then determine how many distance measurementsS₁, S₂, S₃ were retained. If zero distance measurements S₁, S₂, S₃ wereretained, then the controller 80 at 365 may generate one or more controlsignals which may cause the positions sensors 34 ₁, 34 ₂, 34 ₃ and/orthe angle indicator 38 to display a warning to the user. The controller80 at 370 may apply the brake 98, stop the motor 90, and stop thedrill/drive process.

If a single measurement S₁, S₂, S₃ was retained, then the controller 80at 375 may use the retained measurements S₁, S₂, S₃ as the depthmeasurement M for the power tool 10. At 380, the controller 80 maydetermine whether the depth measurement M for the power tool 10 isgreater than the zero value Z. If greater than the zero value Z, thenthe controller 80 at 385 may generate one or more signals that cause themotor 90 to drive or continue to drive the chuck 36. Otherwise, thecontroller 80 at 370 may generate one or more signals which apply thebrake 96 and stop the motor 90 prior to clearing the flag F at 385 andexiting the flowchart 300. The controller 80 upon determining at 380that the depth measurement has reached the zero value Z may furtherpresent the user with an indication that the desired depth has beenreached. For example, the controller 80 may generate one or more signalswhich may cause an audible indication via a speaker, bell, striker, etc.and/or a visual indication via lights of, for example, the angleindicator 38.

If two or more measurements S₁, S₂, S₃ were retained, then thecontroller 80 at 390 may determine the respective angle α₁, α₂, α₂ foreach retained pair of measurements S₁, S₂, S₃ per Equations 1-3. At 395,the controller 80 may determine whether all angles α₁, α₂, α₂ are withinan acceptable range (e.g., between 75° and 105°). If all angles α₁, α₂,α₂ are not within the acceptable range, then the controller 80 at 397may generate one or more signals which cause the position sensors 34 ₁,34 ₂, 34 ₃ and/or the angle indicator 38 to display a warning message tothe user. At 400, the controller 80 may set the depth measurement M tothe shortest retained distance measurement S₁, S₂, S₃. The controller 80may then proceed to 380 in order to determine whether the obtained depthmeasurement M indicates that the power tool 10 has attained the desireddepth associated with the stored zero value Z.

If all angles α₁, α₂, α₂ are within the acceptable range, then thecontroller 80 at 405 may set the depth measurement M to an average ofthe retained distance measurement S₁, S₂, S₃. The controller 80 may thenproceed to 380 in order to determine whether obtained depth measurementM indicates that the power tool 10 has attained the desired depthassociated with the stored zero value Z.

As noted above, if the obtained depth measurement M is greater than thezero value Z, then the controller 80 at 385 may generate one or moresignals which cause the motor 90 to drive or continue to drive the chuck36. Then, the controller 80 as depicted in FIG. 12C may protect thepower tool 10 from cam-out. In particular, the controller 80 at 430 maydetermine whether the obtained depth measurement M is greater than thepreviously stored depth measurement M. If the depth measurement M hasincreased, then a cam-out condition, in which the driver bit has slippedfrom the head of the screw, may have occurred power tool 10. In whichcase, the controller 80 may proceed to 440 to further check for acam-out condition. Otherwise, the controller 80 at 435 may update thestored depth measurement M and return to 305 to check the status of thetrigger 22.

At 440, the controller 80 may compare the current RPM value of the motor90 to the stored RPM value R to determine whether the RPM value of themotor 90 has increased by more than a threshold RPM value (e.g., 100RPM) TR. In one embodiment, the motor 90 is implemented with a brushlessDC motor with internal circuitry that controls the rate of the motor 90.In such embodiments, the controller 80 may obtain the current RPM valuefrom such internal circuitry of the motor 90. In other embodiments, thepower tool 10 may include an inductive sensor on the motor 90 thatprovides the controller 80 with one or more signals indicative thecurrent RPM value of the motor 90. If the RPM value has not increased bymore than the threshold RPM value TR, then controller 80 may determinethat a cam-out condition has not occurred. As such, the controller 80 at445 may update the stored RPM value R and proceed to 305 to check thestatus of the trigger 22.

However, if the RPM value has increased by more than the threshold RPMvalue TR, then the controller 80 may determine that a cam-out conditionhas occurred. Accordingly, the controller 80 at 450 may generate one ormore control signals which apply the brake 96 and stop the motor 90. Thecontroller 80 at block 455 may wait until the current RPM value is zeroand an average of the sensor measurements S₁, S₂, S₃ is within athreshold level (e.g., 0.063 inches) TM of the stored depth measurementM. After determining the current RPM value and the average of the sensormeasurements S₁, S₂, S₃ are within the threshold level TM, thecontroller 80 may proceed to 305 to check the status of the trigger 22.

As explained above, the controller 80 applies the brake 96 and stops themotor 90 when the zero value Z is reached. In one embodiment, a user viathe trigger 22 may cause the controller 80 to further drive the motor 90per a finishing or incremental mode of operation. For example, the usercan over-travel the trigger 22 such that the trigger 22 moves past thefirst stop position 24 and to the second stop position 25 in order toselect the finishing mode of operation. In another embodiment, the usercan continue to hold the trigger 22 for a predetermined time after thezero value Z is reached in order to select the finishing mode ofoperation.

In the finishing mode of operation, the controller 80 may cause themotor 90 to drive the chuck 36 at a finishing rate which causes thechuck 36 to turn at a slower rate than the normal operating rate untilthe trigger 22 is released. For example, for an impact tool, thecontroller 80 may cause the hammer 94 via the motor 90 to impact thechuck 36 at a slower finishing rate (e.g., 1 impact/second). For anon-impact tool, the controller 80 may cause the motor 90 to rotate thechuck 36 at a slower finishing rate (e.g., ¼ turn/second). Such a slowerfinishing rate permits further driving of the screw into the workpiecewhile reducing the odds of cam-out and making it easier for the user tocontrol the power tool 10 such that the screw is driven flush into theworkpiece without overdriving.

Referring now to FIGS. 13-15, a few different example embodiments of theangle indicator 38 are shown. In FIG. 13, an angle indicator 500 isshown which comprises a single indicator light 510. In such anembodiment, the controller 80 may generate signals which continuallyilluminate the light 510 when the power tool 10 is perpendicular orwithin an acceptable range (e.g., is ±15°) of perpendicular to theworkpiece. The controller 80 may further generate signals which causethe light 510 to convey messages (e.g., warning and/or error messages)to the user via various blinking patterns of the light 510.

In FIG. 14, an angle indicator 520 is shown which includes a centralindicator light 521 as well as a left indicator light 522, a rightindicator light 524, a top indicator light 526, and bottom indicatorlight 528. The controller 80 may generate signals which drive thecentral indicator light 521 in a manner similar to the indicator light510 of FIG. 15. Namely, the controller 80 may continually illuminate thecentral indicator light 521 when the power tool 10 is within anacceptable range of being perpendicular to the workpiece. When the powertool 10 is not in an acceptable range of being perpendicular, thecontroller 80 may illuminate respective one or ones of the indicatorlights 522, 524, 526, 528 to indicate in which direction the power tool10 is out of alignment. By illuminating the indicator lights 522, 524,526, 528, the controller 80 may help the user to realign the power tool10 such that it is within the acceptable range of being perpendicular tothe workpiece.

In FIG. 15, an angle indicator 530 is shown having a first display 532and a second display 534. In one embodiment, each display 532 and 534comprises a two-digit, seven segment display. The controller 80 maygenerate control signals which cause the displays 532, 534 to presentthe determined angles α and β. In one embodiment, the angle αcorresponds to a left-and-right angle of the power tool 10 and the angleβ corresponds to an up-and-down angle of the power tool 10. In such anembodiment, the display 532 may depict the left-and-right or a angle andthe display 534 may depict the up-and-down or β angle. Besidesdisplaying the respective angles, the controller 80 may further causethe displays 532, 534 to display one or more messages (e.g., warning orerror messages). Such messages may include one or more numeric symbols,alphabetic symbols, or other symbols. The controller 80 may furthercause displays 532, 534 to present various blinking patterns to furtherconvey messages to the user.

While the present invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the present invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the present invention without departing from its scope.Therefore, it is intended that the present invention not be limited tothe particular embodiment or embodiments disclosed, but that the presentinvention encompasses all embodiments falling within the scope of theappended claims.

What is claimed is:
 1. A power tool, comprising: a chuck having a distalend configured to secure a tool; and a motor configured to rotate thechuck and the tool secured to the chuck; a first position sensorcomprising: a first radiation source configured to project firstradiation toward a workpiece; and a first radiation receiver configuredto receive the first radiation reflected by the workpiece and generate,based on the first radiation received by the first radiation receiver, afirst signal that is indicative of a first distance between the firstposition sensor and the workpiece; a second position sensor comprising:a second radiation source configured to project second radiation towardthe workpiece; and a second radiation receiver configured to receive thesecond radiation reflected by the workpiece and generate, based on thesecond radiation received by the second radiation receiver, a secondsignal that is indicative of a second distance between the secondposition sensor and the workpiece; and a controller configured to:determine, based on the first signal, the first distance between thefirst position sensor and the workpiece; determine, based on the secondsignal, the second distance between the second position sensor and theworkpiece; generate an output signal indicative of whether the firstdistance and the second distance specify a first angle of the power toolwith respect to the workpiece that is within a predetermined range;retain any of the first distance and the second distance that is greaterthan a distance between a respective one of the position sensors and thedistal end of the chuck; determine, based on the retained distances, ameasurement of a drive depth of the tool into the workpiece; andgenerate, based on the measurement, one or more control signals thatcontrol operation of the motor.
 2. The power tool of claim 1, furthercomprising: a third position sensor comprising: a third radiation sourceconfigured to project third radiation toward the workpiece; and a thirdradiation receiver configured to receive the third radiation reflectedby the workpiece and generate, based on the third radiation received bythe first radiation receiver, a third signal that is indicative of athird distance between the third position sensor and the workpiece;wherein the controller is further configured to: determine, based on thethird signal, the third distance between the third position sensor andthe workpiece; determine a second angle of the power tool with respectto the workpiece based on the first distance, the second distance, andthe third distance; and generate another output signal that isindicative of whether the second angle is within the predeterminedrange.
 3. The power tool of claim 2, wherein the controller is furtherconfigured to determine, based further on the third distance, themeasurement of the drive depth of the tool into the workpiece.
 4. Thepower tool of claim 2, wherein the controller is further configured tofurther retain the third distance if greater than the distance betweenthe third position sensor and the distal end of the chuck.
 5. The powertool of claim 1, wherein the controller is further configured todetermine, in response to the first angle being within the predeterminedrange, the measurement that is indicative of the drive depth of the toolinto the workpiece.
 6. The power tool of claim 1, wherein the controlleris configured to generate the one or more control signals such that theone or more control signals stop the motor when the controller detects acam-out condition based on the measurement.
 7. The power tool of claim1, wherein the controller is configured to generate the one or morecontrol signals such that the one or more control signals stop the motorwhen the controller determines the measurement corresponds to apredetermined depth for stopping the motor.
 8. The power tool of claim1, further comprising: a trigger having a first range of travelassociated with a first operating mode and a second range of travelassociated with a second operating mode; wherein the controller isconfigured to generate the one or more control signals that operate themotor per the first operating mode based on the trigger being in thefirst range of travel and that operate the motor per the secondoperating mode based on the trigger being in the second range of travel.9. The power tool of claim 1, further comprising a trigger, wherein, inresponse to the trigger being actuated, the controller is configured togenerate the one or more control signals that operate the motor per afirst operating mode until the measurement of the drive depth of thepower tool into the workpiece corresponds to a predetermined depth andper a second operating mode after the predetermine depth is reached. 10.A method of operating a power tool comprising a chuck having a distalend configured to secure a tool and a motor configured to rotate thechuck and the tool secured to the chuck, the method comprising:projecting first radiation from a first radiation source of a firstposition sensor of the power tool toward a workpiece; receiving, with afirst radiation receiver of the first position sensor, the firstradiation reflected by the workpiece; generating, with the firstradiation receiver of the first position sensor based on the firstradiation received by the first radiation receiver, a first signal thatis indicative of a first distance between the first position sensor andthe workpiece; projecting second radiation from a second radiationsource of a second position sensor of the power tool toward theworkpiece; receiving, with a second radiation receiver of the secondposition sensor, the second radiation reflected by the workpiece;generating, with the second radiation receiver of the second positionsensor based on the second radiation received by the second radiationreceiver, a second signal that is indicative of a second distancebetween the second position sensor and the workpiece; determining, witha controller of the power tool based on the first signal, the firstdistance between the first position sensor and the workpiece;determining, with the controller based on the second signal, the seconddistance between the second position sensor and the workpiece;generating, with the controller, an output signal indicative of whetherthe first distance and the second distance specify a first angle of thepower tool with respect to the workpiece that is within a predeterminedrange; retaining, with the controller, any of the first distance and thesecond distance that is greater than a distance between a respective oneof the position sensors and the distal end of the chuck; determining,with the controller based on the retained distances, a measurement of adrive depth of the tool into the workpiece; and generating, with thecontroller based on the measurement, one or more control signals thatcontrol operation of the motor.
 11. The method of claim 10, furthercomprising: projecting third radiation from a third radiation source ofa third position sensor of the power tool toward the workpiece;receiving, with a third radiation receiver of the third position sensor,the third radiation reflected by the workpiece; generating, with thethird radiation receiver of the third position sensor based on the thirdradiation received by the third radiation receiver, a third signal thatis indicative of a third distance between the third position sensor andthe workpiece; determining, with the controller based on the thirdsignal, the third distance between the third position sensor and theworkpiece; determining, with the controller, a second angle of the powertool with respect to the workpiece based on the first distance, thesecond distance, and the third distance; and generating, with thecontroller, another output signal that is indicative of whether thesecond angle is within the predetermined range.
 12. The method of claim11, wherein said determining the measurement comprises determining themeasurement based further on the third distance.
 13. The method of claim11, wherein said retaining further comprises retaining, with thecontroller, the third distance if greater than a distance between thethird position sensor and the distal end of the chuck.
 14. The method ofclaim 10, wherein said determining the measurement comprises determiningthe measurement in response to the first angle being within thepredetermined range.
 15. The method of claim 10, further comprising:detecting, with the controller based on the measurement, a cam-outcondition; and in response to said detecting, generating, with thecontroller, the one or more control signals such that the one or morecontrol signals stop the motor.
 16. The method of claim 10, furthercomprising: determining, with the controller, that the measurementcorresponds to a predetermined depth; and in response to saiddetermining, generating, with the controller, the one or more controlsignals such that the one or more control signals stop the motor. 17.The method of claim 10, further comprising: in response to a trigger ofthe power tool being in a first range of travel, generating, with thecontroller, the one or more control signals that operate the motor per afirst operating mode; and in response to the trigger being in a secondrange of travel, generating, with the controller, the one or morecontrol signals that operate the motor per a second operating mode. 18.The method of claim 10, further comprising: in response to a trigger ofthe power tool being actuated, generating, with the controller, the oneor more control signals that operate the motor per a first operatingmode until the measurement of the drive depth of the power tool into theworkpiece corresponds to a predetermined depth; and in response to thetrigger being actuated after the predetermine depth is reached,generating, with the controller, the one or more control signals thatoperate the motor per a second operating mode.